/* 
  1 功能：搜索
    1 绑定输入事件
    2 获取输入框的值
    3 判断合法性
    4 把输入框的值发送到后台
    5 将返回的数据显示到页面
  2 功能：防抖
    1 创建TimeId
    2 每次输入，清除上一次计时
    3 重新开始计时，计时结束，执行代码
*/

import { request } from "../../request/index";
Page({
  data:{
    goods:[],
    isFocus:false,
    inpValue:""
  },
  TimeId:-1,

  // 搜索框输入事件
  handleInput(e){
    const value=e.detail.value;
    // 判断合法性
    if(!value.trim()){
      // 值不合法
      this.setData({
        goods:[],
        isFocus:false
      })
      return;
    }
    this.setData({isFocus:true})
    // 每次输入，清除上一次计时
    clearTimeout(this.TimeId);
    // 并重新开始计时
    this.TimeId=setTimeout(()=>{
      this.qsearch(value);
    },900) 
  },

  // 发送搜索请求
  async qsearch(query){
    const goods=await request({url:"/goods/qsearch",data:{query}});
    this.setData({
      goods
    })
  },

  // 取消按钮
  handleCancel(){
    this.setData({
      goods:[],
      isFocus:false,
      inpValue:""
    })
  }
})